.class public abstract Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;
.super Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder;
.source "HttpMessageDecoder.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$1;,
        Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    }
.end annotation

.annotation system Ldalvik/annotation/Signature;
    value = {
        "Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder",
        "<",
        "Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;",
        ">;"
    }
.end annotation


# static fields
.field static final synthetic $assertionsDisabled:Z


# instance fields
.field private chunkSize:J

.field private content:Lorg/jboss/netty/buffer/ChannelBuffer;

.field private headerSize:I

.field private final maxChunkSize:I

.field private final maxHeaderSize:I

.field private final maxInitialLineLength:I

.field private message:Lorg/jboss/netty/handler/codec/http/HttpMessage;


# direct methods
.method static constructor <clinit>()V
    .locals 1

    .prologue
    .line 101
    const-class v0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;

    invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z

    move-result v0

    if-nez v0, :cond_0

    const/4 v0, 0x1

    :goto_0
    sput-boolean v0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->$assertionsDisabled:Z

    return-void

    :cond_0
    const/4 v0, 0x0

    goto :goto_0
.end method

.method protected constructor <init>()V
    .locals 2

    .prologue
    const/16 v1, 0x2000

    .line 137
    const/16 v0, 0x1000

    invoke-direct {p0, v0, v1, v1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;-><init>(III)V

    .line 138
    return-void
.end method

.method protected constructor <init>(III)V
    .locals 3
    .parameter "maxInitialLineLength"
    .parameter "maxHeaderSize"
    .parameter "maxChunkSize"

    .prologue
    .line 146
    sget-object v0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->SKIP_CONTROL_CHARS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    const/4 v1, 0x1

    invoke-direct {p0, v0, v1}, Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder;-><init>(Ljava/lang/Enum;Z)V

    .line 148
    if-gtz p1, :cond_0

    .line 149
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "maxInitialLineLength must be a positive integer: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 153
    :cond_0
    if-gtz p2, :cond_1

    .line 154
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "maxHeaderSize must be a positive integer: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 158
    :cond_1
    if-gez p3, :cond_2

    .line 159
    new-instance v0, Ljava/lang/IllegalArgumentException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "maxChunkSize must be a positive integer: "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 163
    :cond_2
    iput p1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxInitialLineLength:I

    .line 164
    iput p2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxHeaderSize:I

    .line 165
    iput p3, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    .line 166
    return-void
.end method

.method private findEndOfString(Ljava/lang/String;)I
    .locals 2
    .parameter "sb"

    .prologue
    .line 672
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    .local v0, result:I
    :goto_0
    if-lez v0, :cond_0

    .line 673
    add-int/lit8 v1, v0, -0x1

    invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C

    move-result v1

    invoke-static {v1}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v1

    if-nez v1, :cond_1

    .line 677
    :cond_0
    return v0

    .line 672
    :cond_1
    add-int/lit8 v0, v0, -0x1

    goto :goto_0
.end method

.method private findNonWhitespace(Ljava/lang/String;I)I
    .locals 2
    .parameter "sb"
    .parameter "offset"

    .prologue
    .line 652
    move v0, p2

    .local v0, result:I
    :goto_0
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v1

    if-ge v0, v1, :cond_0

    .line 653
    invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    invoke-static {v1}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v1

    if-nez v1, :cond_1

    .line 657
    :cond_0
    return v0

    .line 652
    :cond_1
    add-int/lit8 v0, v0, 0x1

    goto :goto_0
.end method

.method private findWhitespace(Ljava/lang/String;I)I
    .locals 2
    .parameter "sb"
    .parameter "offset"

    .prologue
    .line 662
    move v0, p2

    .local v0, result:I
    :goto_0
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v1

    if-ge v0, v1, :cond_0

    .line 663
    invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C

    move-result v1

    invoke-static {v1}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v1

    if-eqz v1, :cond_1

    .line 667
    :cond_0
    return v0

    .line 662
    :cond_1
    add-int/lit8 v0, v0, 0x1

    goto :goto_0
.end method

.method private getChunkSize(Ljava/lang/String;)I
    .locals 3
    .parameter "hex"

    .prologue
    .line 549
    invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object p1

    .line 550
    const/4 v1, 0x0

    .local v1, i:I
    :goto_0
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v2

    if-ge v1, v2, :cond_1

    .line 551
    invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C

    move-result v0

    .line 552
    .local v0, c:C
    const/16 v2, 0x3b

    if-eq v0, v2, :cond_0

    invoke-static {v0}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v2

    if-nez v2, :cond_0

    invoke-static {v0}, Ljava/lang/Character;->isISOControl(C)Z

    move-result v2

    if-eqz v2, :cond_2

    .line 553
    :cond_0
    const/4 v2, 0x0

    invoke-virtual {p1, v2, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object p1

    .line 558
    .end local v0           #c:C
    :cond_1
    const/16 v2, 0x10

    invoke-static {p1, v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I

    move-result v2

    return v2

    .line 550
    .restart local v0       #c:C
    :cond_2
    add-int/lit8 v1, v1, 0x1

    goto :goto_0
.end method

.method private readFixedLengthContent(Lorg/jboss/netty/buffer/ChannelBuffer;)V
    .locals 5
    .parameter "buffer"

    .prologue
    .line 408
    iget-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const-wide/16 v3, -0x1

    invoke-static {v2, v3, v4}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->getContentLength(Lorg/jboss/netty/handler/codec/http/HttpMessage;J)J

    move-result-wide v0

    .line 409
    .local v0, length:J
    sget-boolean v2, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->$assertionsDisabled:Z

    if-nez v2, :cond_0

    const-wide/32 v2, 0x7fffffff

    cmp-long v2, v0, v2

    if-lez v2, :cond_0

    new-instance v2, Ljava/lang/AssertionError;

    invoke-direct {v2}, Ljava/lang/AssertionError;-><init>()V

    throw v2

    .line 411
    :cond_0
    iget-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    if-nez v2, :cond_1

    .line 412
    long-to-int v2, v0

    invoke-interface {p1, v2}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v2

    iput-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 416
    :goto_0
    return-void

    .line 414
    :cond_1
    iget-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    long-to-int v3, v0

    invoke-interface {p1, v3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v3

    invoke-interface {v2, v3}, Lorg/jboss/netty/buffer/ChannelBuffer;->writeBytes(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    goto :goto_0
.end method

.method private readHeader(Lorg/jboss/netty/buffer/ChannelBuffer;)Ljava/lang/String;
    .locals 6
    .parameter "buffer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;
        }
    .end annotation

    .prologue
    .line 506
    new-instance v2, Ljava/lang/StringBuilder;

    const/16 v3, 0x40

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(I)V

    .line 507
    .local v2, sb:Ljava/lang/StringBuilder;
    iget v0, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->headerSize:I

    .line 511
    .local v0, headerSize:I
    :goto_0
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v3

    int-to-char v1, v3

    .line 512
    .local v1, nextByte:C
    add-int/lit8 v0, v0, 0x1

    .line 514
    packed-switch v1, :pswitch_data_0

    .line 527
    :cond_0
    :pswitch_0
    iget v3, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxHeaderSize:I

    if-lt v0, v3, :cond_1

    .line 532
    new-instance v3, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v5, "HTTP header is larger than "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    iget v5, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxHeaderSize:I

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, " bytes."

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-direct {v3, v4}, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;-><init>(Ljava/lang/String;)V

    throw v3

    .line 516
    :pswitch_1
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v3

    int-to-char v1, v3

    .line 517
    add-int/lit8 v0, v0, 0x1

    .line 518
    const/16 v3, 0xa

    if-ne v1, v3, :cond_0

    .line 541
    :pswitch_2
    iput v0, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->headerSize:I

    .line 542
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    return-object v3

    .line 538
    :cond_1
    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_0

    .line 514
    :pswitch_data_0
    .packed-switch 0xa
        :pswitch_2
        :pswitch_0
        :pswitch_0
        :pswitch_1
    .end packed-switch
.end method

.method private readHeaders(Lorg/jboss/netty/buffer/ChannelBuffer;)Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    .locals 11
    .parameter "buffer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;
        }
    .end annotation

    .prologue
    const/16 v10, 0x20

    const/4 v9, 0x0

    .line 419
    iput v9, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->headerSize:I

    .line 420
    iget-object v3, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    .line 421
    .local v3, message:Lorg/jboss/netty/handler/codec/http/HttpMessage;
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readHeader(Lorg/jboss/netty/buffer/ChannelBuffer;)Ljava/lang/String;

    move-result-object v2

    .line 422
    .local v2, line:Ljava/lang/String;
    const/4 v4, 0x0

    .line 423
    .local v4, name:Ljava/lang/String;
    const/4 v6, 0x0

    .line 424
    .local v6, value:Ljava/lang/String;
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v7

    if-eqz v7, :cond_2

    .line 425
    invoke-interface {v3}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->clearHeaders()V

    .line 427
    :cond_0
    invoke-virtual {v2, v9}, Ljava/lang/String;->charAt(I)C

    move-result v0

    .line 428
    .local v0, firstChar:C
    if-eqz v4, :cond_3

    if-eq v0, v10, :cond_1

    const/16 v7, 0x9

    if-ne v0, v7, :cond_3

    .line 429
    :cond_1
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v7, v10}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v2}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v8

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v6

    .line 439
    :goto_0
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readHeader(Lorg/jboss/netty/buffer/ChannelBuffer;)Ljava/lang/String;

    move-result-object v2

    .line 440
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v7

    if-nez v7, :cond_0

    .line 443
    if-eqz v4, :cond_2

    .line 444
    invoke-interface {v3, v4, v6}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->addHeader(Ljava/lang/String;Ljava/lang/Object;)V

    .line 450
    .end local v0           #firstChar:C
    :cond_2
    invoke-virtual {p0, v3}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->isContentAlwaysEmpty(Lorg/jboss/netty/handler/codec/http/HttpMessage;)Z

    move-result v7

    if-eqz v7, :cond_5

    .line 451
    sget-object v5, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->SKIP_CONTROL_CHARS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    .line 465
    .local v5, nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    :goto_1
    return-object v5

    .line 431
    .end local v5           #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    .restart local v0       #firstChar:C
    :cond_3
    if-eqz v4, :cond_4

    .line 432
    invoke-interface {v3, v4, v6}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->addHeader(Ljava/lang/String;Ljava/lang/Object;)V

    .line 434
    :cond_4
    invoke-direct {p0, v2}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->splitHeader(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v1

    .line 435
    .local v1, header:[Ljava/lang/String;
    aget-object v4, v1, v9

    .line 436
    const/4 v7, 0x1

    aget-object v6, v1, v7

    goto :goto_0

    .line 452
    .end local v0           #firstChar:C
    .end local v1           #header:[Ljava/lang/String;
    :cond_5
    invoke-interface {v3}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->isChunked()Z

    move-result v7

    if-eqz v7, :cond_6

    .line 459
    sget-object v5, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_SIZE:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    .restart local v5       #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    goto :goto_1

    .line 460
    .end local v5           #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    :cond_6
    const-wide/16 v7, -0x1

    invoke-static {v3, v7, v8}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->getContentLength(Lorg/jboss/netty/handler/codec/http/HttpMessage;J)J

    move-result-wide v7

    const-wide/16 v9, 0x0

    cmp-long v7, v7, v9

    if-ltz v7, :cond_7

    .line 461
    sget-object v5, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_FIXED_LENGTH_CONTENT:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    .restart local v5       #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    goto :goto_1

    .line 463
    .end local v5           #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    :cond_7
    sget-object v5, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_VARIABLE_LENGTH_CONTENT:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    .restart local v5       #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    goto :goto_1
.end method

.method private readLine(Lorg/jboss/netty/buffer/ChannelBuffer;I)Ljava/lang/String;
    .locals 6
    .parameter "buffer"
    .parameter "maxLineLength"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;
        }
    .end annotation

    .prologue
    const/16 v4, 0xa

    .line 562
    new-instance v2, Ljava/lang/StringBuilder;

    const/16 v3, 0x40

    invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(I)V

    .line 563
    .local v2, sb:Ljava/lang/StringBuilder;
    const/4 v0, 0x0

    .line 565
    .local v0, lineLength:I
    :cond_0
    :goto_0
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v1

    .line 566
    .local v1, nextByte:B
    const/16 v3, 0xd

    if-ne v1, v3, :cond_1

    .line 567
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v1

    .line 568
    if-ne v1, v4, :cond_0

    .line 569
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    .line 572
    :goto_1
    return-object v3

    .line 571
    :cond_1
    if-ne v1, v4, :cond_2

    .line 572
    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v3

    goto :goto_1

    .line 574
    :cond_2
    if-lt v0, p2, :cond_3

    .line 579
    new-instance v3, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

    const-string v5, "An HTTP line is larger than "

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v4

    const-string v5, " bytes."

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-direct {v3, v4}, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;-><init>(Ljava/lang/String;)V

    throw v3

    .line 583
    :cond_3
    add-int/lit8 v0, v0, 0x1

    .line 584
    int-to-char v3, v1

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;

    goto :goto_0
.end method

.method private readTrailingHeaders(Lorg/jboss/netty/buffer/ChannelBuffer;)Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    .locals 12
    .parameter "buffer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;
        }
    .end annotation

    .prologue
    const/4 v11, 0x0

    .line 469
    iput v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->headerSize:I

    .line 470
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readHeader(Lorg/jboss/netty/buffer/ChannelBuffer;)Ljava/lang/String;

    move-result-object v5

    .line 471
    .local v5, line:Ljava/lang/String;
    const/4 v3, 0x0

    .line 472
    .local v3, lastHeader:Ljava/lang/String;
    invoke-virtual {v5}, Ljava/lang/String;->length()I

    move-result v9

    if-eqz v9, :cond_5

    .line 473
    new-instance v8, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunkTrailer;

    invoke-direct {v8}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunkTrailer;-><init>()V

    .line 475
    .local v8, trailer:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    :cond_0
    invoke-virtual {v5, v11}, Ljava/lang/String;->charAt(I)C

    move-result v1

    .line 476
    .local v1, firstChar:C
    if-eqz v3, :cond_3

    const/16 v9, 0x20

    if-eq v1, v9, :cond_1

    const/16 v9, 0x9

    if-ne v1, v9, :cond_3

    .line 477
    :cond_1
    invoke-interface {v8, v3}, Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;->getHeaders(Ljava/lang/String;)Ljava/util/List;

    move-result-object v0

    .line 478
    .local v0, current:Ljava/util/List;,"Ljava/util/List<Ljava/lang/String;>;"
    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v9

    if-eqz v9, :cond_2

    .line 479
    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v9

    add-int/lit8 v4, v9, -0x1

    .line 480
    .local v4, lastPos:I
    new-instance v10, Ljava/lang/StringBuilder;

    invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V

    invoke-interface {v0, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v9

    check-cast v9, Ljava/lang/String;

    invoke-virtual {v10, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v9

    invoke-virtual {v5}, Ljava/lang/String;->trim()Ljava/lang/String;

    move-result-object v10

    invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v9

    invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    .line 481
    .local v7, newString:Ljava/lang/String;
    invoke-interface {v0, v4, v7}, Ljava/util/List;->set(ILjava/lang/Object;)Ljava/lang/Object;

    .line 496
    .end local v0           #current:Ljava/util/List;,"Ljava/util/List<Ljava/lang/String;>;"
    .end local v4           #lastPos:I
    .end local v7           #newString:Ljava/lang/String;
    :cond_2
    :goto_0
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readHeader(Lorg/jboss/netty/buffer/ChannelBuffer;)Ljava/lang/String;

    move-result-object v5

    .line 497
    invoke-virtual {v5}, Ljava/lang/String;->length()I

    move-result v9

    if-nez v9, :cond_0

    .line 502
    .end local v1           #firstChar:C
    .end local v8           #trailer:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    :goto_1
    return-object v8

    .line 486
    .restart local v1       #firstChar:C
    .restart local v8       #trailer:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    :cond_3
    invoke-direct {p0, v5}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->splitHeader(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v2

    .line 487
    .local v2, header:[Ljava/lang/String;
    aget-object v6, v2, v11

    .line 488
    .local v6, name:Ljava/lang/String;
    const-string v9, "Content-Length"

    invoke-virtual {v6, v9}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v9

    if-nez v9, :cond_4

    const-string v9, "Transfer-Encoding"

    invoke-virtual {v6, v9}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v9

    if-nez v9, :cond_4

    const-string v9, "Trailer"

    invoke-virtual {v6, v9}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z

    move-result v9

    if-nez v9, :cond_4

    .line 491
    const/4 v9, 0x1

    aget-object v9, v2, v9

    invoke-interface {v8, v6, v9}, Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;->addHeader(Ljava/lang/String;Ljava/lang/Object;)V

    .line 493
    :cond_4
    move-object v3, v6

    goto :goto_0

    .line 502
    .end local v1           #firstChar:C
    .end local v2           #header:[Ljava/lang/String;
    .end local v6           #name:Ljava/lang/String;
    .end local v8           #trailer:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    :cond_5
    sget-object v8, Lorg/jboss/netty/handler/codec/http/HttpChunk;->LAST_CHUNK:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;

    goto :goto_1
.end method

.method private reset()Ljava/lang/Object;
    .locals 3

    .prologue
    const/4 v2, 0x0

    .line 383
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    .line 384
    .local v1, message:Lorg/jboss/netty/handler/codec/http/HttpMessage;
    iget-object v0, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 386
    .local v0, content:Lorg/jboss/netty/buffer/ChannelBuffer;
    if-eqz v0, :cond_0

    .line 387
    invoke-interface {v1, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->setContent(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 388
    iput-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 390
    :cond_0
    iput-object v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    .line 392
    sget-object v2, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->SKIP_CONTROL_CHARS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v2}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 393
    return-object v1
.end method

.method private skipControlCharacters(Lorg/jboss/netty/buffer/ChannelBuffer;)V
    .locals 2
    .parameter "buffer"

    .prologue
    .line 398
    :cond_0
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readUnsignedByte()S

    move-result v1

    int-to-char v0, v1

    .line 399
    .local v0, c:C
    invoke-static {v0}, Ljava/lang/Character;->isISOControl(C)Z

    move-result v1

    if-nez v1, :cond_0

    invoke-static {v0}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v1

    if-nez v1, :cond_0

    .line 401
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readerIndex()I

    move-result v1

    add-int/lit8 v1, v1, -0x1

    invoke-interface {p1, v1}, Lorg/jboss/netty/buffer/ChannelBuffer;->readerIndex(I)V

    .line 405
    return-void
.end method

.method private splitHeader(Ljava/lang/String;)[Ljava/lang/String;
    .locals 12
    .parameter "sb"

    .prologue
    const/16 v11, 0x3a

    const/4 v8, 0x2

    const/4 v10, 0x1

    const/4 v9, 0x0

    .line 613
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v2

    .line 620
    .local v2, length:I
    invoke-direct {p0, p1, v9}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findNonWhitespace(Ljava/lang/String;I)I

    move-result v4

    .line 621
    .local v4, nameStart:I
    move v3, v4

    .local v3, nameEnd:I
    :goto_0
    if-ge v3, v2, :cond_0

    .line 622
    invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C

    move-result v0

    .line 623
    .local v0, ch:C
    if-eq v0, v11, :cond_0

    invoke-static {v0}, Ljava/lang/Character;->isWhitespace(C)Z

    move-result v7

    if-eqz v7, :cond_2

    .line 628
    .end local v0           #ch:C
    :cond_0
    move v1, v3

    .local v1, colonEnd:I
    :goto_1
    if-ge v1, v2, :cond_1

    .line 629
    invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C

    move-result v7

    if-ne v7, v11, :cond_3

    .line 630
    add-int/lit8 v1, v1, 0x1

    .line 635
    :cond_1
    invoke-direct {p0, p1, v1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findNonWhitespace(Ljava/lang/String;I)I

    move-result v6

    .line 636
    .local v6, valueStart:I
    if-ne v6, v2, :cond_4

    .line 637
    new-array v7, v8, [Ljava/lang/String;

    invoke-virtual {p1, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v8

    aput-object v8, v7, v9

    const-string v8, ""

    aput-object v8, v7, v10

    .line 644
    :goto_2
    return-object v7

    .line 621
    .end local v1           #colonEnd:I
    .end local v6           #valueStart:I
    .restart local v0       #ch:C
    :cond_2
    add-int/lit8 v3, v3, 0x1

    goto :goto_0

    .line 628
    .end local v0           #ch:C
    .restart local v1       #colonEnd:I
    :cond_3
    add-int/lit8 v1, v1, 0x1

    goto :goto_1

    .line 643
    .restart local v6       #valueStart:I
    :cond_4
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findEndOfString(Ljava/lang/String;)I

    move-result v5

    .line 644
    .local v5, valueEnd:I
    new-array v7, v8, [Ljava/lang/String;

    invoke-virtual {p1, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v8

    aput-object v8, v7, v9

    invoke-virtual {p1, v6, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v8

    aput-object v8, v7, v10

    goto :goto_2
.end method

.method private splitInitialLine(Ljava/lang/String;)[Ljava/lang/String;
    .locals 9
    .parameter "sb"

    .prologue
    const/4 v8, 0x0

    .line 597
    invoke-direct {p0, p1, v8}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findNonWhitespace(Ljava/lang/String;I)I

    move-result v1

    .line 598
    .local v1, aStart:I
    invoke-direct {p0, p1, v1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findWhitespace(Ljava/lang/String;I)I

    move-result v0

    .line 600
    .local v0, aEnd:I
    invoke-direct {p0, p1, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findNonWhitespace(Ljava/lang/String;I)I

    move-result v3

    .line 601
    .local v3, bStart:I
    invoke-direct {p0, p1, v3}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findWhitespace(Ljava/lang/String;I)I

    move-result v2

    .line 603
    .local v2, bEnd:I
    invoke-direct {p0, p1, v2}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findNonWhitespace(Ljava/lang/String;I)I

    move-result v5

    .line 604
    .local v5, cStart:I
    invoke-direct {p0, p1}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->findEndOfString(Ljava/lang/String;)I

    move-result v4

    .line 606
    .local v4, cEnd:I
    const/4 v6, 0x3

    new-array v7, v6, [Ljava/lang/String;

    invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v6

    aput-object v6, v7, v8

    const/4 v6, 0x1

    invoke-virtual {p1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v8

    aput-object v8, v7, v6

    const/4 v8, 0x2

    if-ge v5, v4, :cond_0

    invoke-virtual {p1, v5, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v6

    :goto_0
    aput-object v6, v7, v8

    return-object v7

    :cond_0
    const-string v6, ""

    goto :goto_0
.end method


# virtual methods
.method protected abstract createMessage([Ljava/lang/String;)Lorg/jboss/netty/handler/codec/http/HttpMessage;
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation
.end method

.method protected bridge synthetic decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Ljava/lang/Enum;)Ljava/lang/Object;
    .locals 1
    .parameter "x0"
    .parameter "x1"
    .parameter "x2"
    .parameter "x3"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .prologue
    .line 101
    check-cast p4, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    .end local p4
    invoke-virtual {p0, p1, p2, p3, p4}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;)Ljava/lang/Object;

    move-result-object v0

    return-object v0
.end method

.method protected decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;)Ljava/lang/Object;
    .locals 15
    .parameter "ctx"
    .parameter "channel"
    .parameter "buffer"
    .parameter "state"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .prologue
    .line 170
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$1;->$SwitchMap$org$jboss$netty$handler$codec$http$HttpMessageDecoder$State:[I

    invoke-virtual/range {p4 .. p4}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->ordinal()I

    move-result v12

    aget v11, v11, v12

    packed-switch v11, :pswitch_data_0

    .line 361
    new-instance v11, Ljava/lang/Error;

    const-string v12, "Shouldn\'t reach here."

    invoke-direct {v11, v12}, Ljava/lang/Error;-><init>(Ljava/lang/String;)V

    throw v11

    .line 173
    :pswitch_0
    :try_start_0
    move-object/from16 v0, p3

    invoke-direct {p0, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->skipControlCharacters(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 174
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_INITIAL:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0

    .line 176
    invoke-virtual {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint()V

    .line 180
    :pswitch_1
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxInitialLineLength:I

    move-object/from16 v0, p3

    invoke-direct {p0, v0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readLine(Lorg/jboss/netty/buffer/ChannelBuffer;I)Ljava/lang/String;

    move-result-object v11

    invoke-direct {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->splitInitialLine(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v6

    .line 181
    .local v6, initialLine:[Ljava/lang/String;
    array-length v11, v6

    const/4 v12, 0x3

    if-ge v11, v12, :cond_1

    .line 183
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->SKIP_CONTROL_CHARS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 184
    const/4 v1, 0x0

    .line 357
    .end local v6           #initialLine:[Ljava/lang/String;
    :cond_0
    :goto_0
    return-object v1

    .line 176
    :catchall_0
    move-exception v11

    invoke-virtual {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint()V

    throw v11

    .line 187
    .restart local v6       #initialLine:[Ljava/lang/String;
    :cond_1
    invoke-virtual {p0, v6}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->createMessage([Ljava/lang/String;)Lorg/jboss/netty/handler/codec/http/HttpMessage;

    move-result-object v11

    iput-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    .line 188
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_HEADER:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 191
    .end local v6           #initialLine:[Ljava/lang/String;
    :pswitch_2
    move-object/from16 v0, p3

    invoke-direct {p0, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readHeaders(Lorg/jboss/netty/buffer/ChannelBuffer;)Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    move-result-object v9

    .line 192
    .local v9, nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    invoke-virtual {p0, v9}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 193
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_SIZE:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    if-ne v9, v11, :cond_2

    .line 195
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const/4 v12, 0x1

    invoke-interface {v11, v12}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->setChunked(Z)V

    .line 197
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    goto :goto_0

    .line 198
    :cond_2
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->SKIP_CONTROL_CHARS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    if-ne v9, v11, :cond_3

    .line 202
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const-string v12, "Transfer-Encoding"

    invoke-interface {v11, v12}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->removeHeader(Ljava/lang/String;)V

    .line 203
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    goto :goto_0

    .line 205
    :cond_3
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const-wide/16 v12, -0x1

    invoke-static {v11, v12, v13}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->getContentLength(Lorg/jboss/netty/handler/codec/http/HttpMessage;J)J

    move-result-wide v4

    .line 206
    .local v4, contentLength:J
    const-wide/16 v11, 0x0

    cmp-long v11, v4, v11

    if-eqz v11, :cond_4

    const-wide/16 v11, -0x1

    cmp-long v11, v4, v11

    if-nez v11, :cond_5

    invoke-virtual {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->isDecodingRequest()Z

    move-result v11

    if-eqz v11, :cond_5

    .line 207
    :cond_4
    sget-object v11, Lorg/jboss/netty/buffer/ChannelBuffers;->EMPTY_BUFFER:Lorg/jboss/netty/buffer/ChannelBuffer;

    iput-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 208
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    move-result-object v1

    goto :goto_0

    .line 211
    :cond_5
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$1;->$SwitchMap$org$jboss$netty$handler$codec$http$HttpMessageDecoder$State:[I

    invoke-virtual {v9}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->ordinal()I

    move-result v12

    aget v11, v11, v12

    packed-switch v11, :pswitch_data_1

    .line 232
    new-instance v11, Ljava/lang/IllegalStateException;

    new-instance v12, Ljava/lang/StringBuilder;

    invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V

    const-string v13, "Unexpected state: "

    invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v12

    invoke-virtual {v12, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v12

    invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v12

    invoke-direct {v11, v12}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v11

    .line 213
    :pswitch_3
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    int-to-long v11, v11

    cmp-long v11, v4, v11

    if-gtz v11, :cond_6

    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    invoke-static {v11}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->is100ContinueExpected(Lorg/jboss/netty/handler/codec/http/HttpMessage;)Z

    move-result v11

    if-eqz v11, :cond_8

    .line 215
    :cond_6
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_FIXED_LENGTH_CONTENT_AS_CHUNKS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 216
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const/4 v12, 0x1

    invoke-interface {v11, v12}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->setChunked(Z)V

    .line 219
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const-wide/16 v12, -0x1

    invoke-static {v11, v12, v13}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->getContentLength(Lorg/jboss/netty/handler/codec/http/HttpMessage;J)J

    move-result-wide v11

    iput-wide v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 220
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    goto/16 :goto_0

    .line 224
    :pswitch_4
    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readableBytes()I

    move-result v11

    iget v12, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    if-gt v11, v12, :cond_7

    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    invoke-static {v11}, Lorg/jboss/netty/handler/codec/http/HttpHeaders;->is100ContinueExpected(Lorg/jboss/netty/handler/codec/http/HttpMessage;)Z

    move-result v11

    if-eqz v11, :cond_8

    .line 226
    :cond_7
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_VARIABLE_LENGTH_CONTENT_AS_CHUNKS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 227
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    const/4 v12, 0x1

    invoke-interface {v11, v12}, Lorg/jboss/netty/handler/codec/http/HttpMessage;->setChunked(Z)V

    .line 228
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->message:Lorg/jboss/netty/handler/codec/http/HttpMessage;

    goto/16 :goto_0

    .line 236
    :cond_8
    const/4 v1, 0x0

    goto/16 :goto_0

    .line 239
    .end local v4           #contentLength:J
    .end local v9           #nextState:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;
    :pswitch_5
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    if-nez v11, :cond_9

    .line 240
    invoke-interface/range {p2 .. p2}, Lorg/jboss/netty/channel/Channel;->getConfig()Lorg/jboss/netty/channel/ChannelConfig;

    move-result-object v11

    invoke-interface {v11}, Lorg/jboss/netty/channel/ChannelConfig;->getBufferFactory()Lorg/jboss/netty/buffer/ChannelBufferFactory;

    move-result-object v11

    invoke-static {v11}, Lorg/jboss/netty/buffer/ChannelBuffers;->dynamicBuffer(Lorg/jboss/netty/buffer/ChannelBufferFactory;)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    iput-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 243
    :cond_9
    iget-object v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->content:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readableBytes()I

    move-result v12

    move-object/from16 v0, p3

    invoke-interface {v0, v12}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v12

    invoke-interface {v11, v12}, Lorg/jboss/netty/buffer/ChannelBuffer;->writeBytes(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 244
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    move-result-object v1

    goto/16 :goto_0

    .line 248
    :pswitch_6
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readableBytes()I

    move-result v12

    invoke-static {v11, v12}, Ljava/lang/Math;->min(II)I

    move-result v2

    .line 249
    .local v2, chunkSize:I
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    move-object/from16 v0, p3

    invoke-interface {v0, v2}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 251
    .local v1, chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readable()Z

    move-result v11

    if-nez v11, :cond_0

    .line 253
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    .line 254
    invoke-interface {v1}, Lorg/jboss/netty/handler/codec/http/HttpChunk;->isLast()Z

    move-result v11

    if-nez v11, :cond_0

    .line 256
    const/4 v11, 0x2

    new-array v10, v11, [Ljava/lang/Object;

    const/4 v11, 0x0

    aput-object v1, v10, v11

    const/4 v11, 0x1

    sget-object v12, Lorg/jboss/netty/handler/codec/http/HttpChunk;->LAST_CHUNK:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;

    aput-object v12, v10, v11

    move-object v1, v10

    goto/16 :goto_0

    .line 263
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    .end local v2           #chunkSize:I
    :pswitch_7
    move-object/from16 v0, p3

    invoke-direct {p0, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readFixedLengthContent(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 264
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    move-result-object v1

    goto/16 :goto_0

    .line 267
    :pswitch_8
    iget-wide v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 269
    .local v2, chunkSize:J
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    int-to-long v11, v11

    cmp-long v11, v2, v11

    if-lez v11, :cond_a

    .line 270
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    move-object/from16 v0, p3

    invoke-interface {v0, v11}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 271
    .restart local v1       #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    int-to-long v11, v11

    sub-long/2addr v2, v11

    .line 277
    :goto_1
    iput-wide v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 279
    const-wide/16 v11, 0x0

    cmp-long v11, v2, v11

    if-nez v11, :cond_0

    .line 281
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    .line 282
    invoke-interface {v1}, Lorg/jboss/netty/handler/codec/http/HttpChunk;->isLast()Z

    move-result v11

    if-nez v11, :cond_0

    .line 284
    const/4 v11, 0x2

    new-array v10, v11, [Ljava/lang/Object;

    const/4 v11, 0x0

    aput-object v1, v10, v11

    const/4 v11, 0x1

    sget-object v12, Lorg/jboss/netty/handler/codec/http/HttpChunk;->LAST_CHUNK:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;

    aput-object v12, v10, v11

    move-object v1, v10

    goto/16 :goto_0

    .line 273
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    :cond_a
    sget-boolean v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->$assertionsDisabled:Z

    if-nez v11, :cond_b

    const-wide/32 v11, 0x7fffffff

    cmp-long v11, v2, v11

    if-lez v11, :cond_b

    new-instance v11, Ljava/lang/AssertionError;

    invoke-direct {v11}, Ljava/lang/AssertionError;-><init>()V

    throw v11

    .line 274
    :cond_b
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    long-to-int v11, v2

    move-object/from16 v0, p3

    invoke-interface {v0, v11}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 275
    .restart local v1       #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    const-wide/16 v2, 0x0

    goto :goto_1

    .line 294
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    .end local v2           #chunkSize:J
    :pswitch_9
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxInitialLineLength:I

    move-object/from16 v0, p3

    invoke-direct {p0, v0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readLine(Lorg/jboss/netty/buffer/ChannelBuffer;I)Ljava/lang/String;

    move-result-object v7

    .line 295
    .local v7, line:Ljava/lang/String;
    invoke-direct {p0, v7}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->getChunkSize(Ljava/lang/String;)I

    move-result v2

    .line 296
    .local v2, chunkSize:I
    int-to-long v11, v2

    iput-wide v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 297
    if-nez v2, :cond_c

    .line 298
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_FOOTER:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 299
    const/4 v1, 0x0

    goto/16 :goto_0

    .line 300
    :cond_c
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    if-le v2, v11, :cond_d

    .line 302
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNKED_CONTENT_AS_CHUNKS:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 308
    .end local v2           #chunkSize:I
    .end local v7           #line:Ljava/lang/String;
    :goto_2
    :pswitch_a
    sget-boolean v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->$assertionsDisabled:Z

    if-nez v11, :cond_e

    iget-wide v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    const-wide/32 v13, 0x7fffffff

    cmp-long v11, v11, v13

    if-lez v11, :cond_e

    new-instance v11, Ljava/lang/AssertionError;

    invoke-direct {v11}, Ljava/lang/AssertionError;-><init>()V

    throw v11

    .line 304
    .restart local v2       #chunkSize:I
    .restart local v7       #line:Ljava/lang/String;
    :cond_d
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNKED_CONTENT:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    goto :goto_2

    .line 309
    .end local v2           #chunkSize:I
    .end local v7           #line:Ljava/lang/String;
    :cond_e
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    iget-wide v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    long-to-int v11, v11

    move-object/from16 v0, p3

    invoke-interface {v0, v11}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 310
    .restart local v1       #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_DELIMITER:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    goto/16 :goto_0

    .line 314
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    :pswitch_b
    iget-wide v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 316
    .local v2, chunkSize:J
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    int-to-long v11, v11

    cmp-long v11, v2, v11

    if-lez v11, :cond_11

    .line 317
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    move-object/from16 v0, p3

    invoke-interface {v0, v11}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 318
    .restart local v1       #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    int-to-long v11, v11

    sub-long/2addr v2, v11

    .line 324
    :goto_3
    iput-wide v2, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->chunkSize:J

    .line 326
    const-wide/16 v11, 0x0

    cmp-long v11, v2, v11

    if-nez v11, :cond_f

    .line 328
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_DELIMITER:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 331
    :cond_f
    invoke-interface {v1}, Lorg/jboss/netty/handler/codec/http/HttpChunk;->isLast()Z

    move-result v11

    if-eqz v11, :cond_0

    .line 337
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    .end local v2           #chunkSize:J
    :cond_10
    :pswitch_c
    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v8

    .line 338
    .local v8, next:B
    const/16 v11, 0xd

    if-ne v8, v11, :cond_13

    .line 339
    invoke-interface/range {p3 .. p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v11

    const/16 v12, 0xa

    if-ne v11, v12, :cond_10

    .line 340
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_SIZE:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 341
    const/4 v1, 0x0

    goto/16 :goto_0

    .line 320
    .end local v8           #next:B
    .restart local v2       #chunkSize:J
    :cond_11
    sget-boolean v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->$assertionsDisabled:Z

    if-nez v11, :cond_12

    const-wide/32 v11, 0x7fffffff

    cmp-long v11, v2, v11

    if-lez v11, :cond_12

    new-instance v11, Ljava/lang/AssertionError;

    invoke-direct {v11}, Ljava/lang/AssertionError;-><init>()V

    throw v11

    .line 321
    :cond_12
    new-instance v1, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;

    long-to-int v11, v2

    move-object/from16 v0, p3

    invoke-interface {v0, v11}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v11

    invoke-direct {v1, v11}, Lorg/jboss/netty/handler/codec/http/DefaultHttpChunk;-><init>(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 322
    .restart local v1       #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    const-wide/16 v2, 0x0

    goto :goto_3

    .line 343
    .end local v1           #chunk:Lorg/jboss/netty/handler/codec/http/HttpChunk;
    .end local v2           #chunkSize:J
    .restart local v8       #next:B
    :cond_13
    const/16 v11, 0xa

    if-ne v8, v11, :cond_10

    .line 344
    sget-object v11, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;->READ_CHUNK_SIZE:Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder$State;

    invoke-virtual {p0, v11}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 345
    const/4 v1, 0x0

    goto/16 :goto_0

    .line 350
    .end local v8           #next:B
    :pswitch_d
    move-object/from16 v0, p3

    invoke-direct {p0, v0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->readTrailingHeaders(Lorg/jboss/netty/buffer/ChannelBuffer;)Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;

    move-result-object v10

    .line 351
    .local v10, trailer:Lorg/jboss/netty/handler/codec/http/HttpChunkTrailer;
    iget v11, p0, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->maxChunkSize:I

    if-nez v11, :cond_14

    .line 353
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    move-result-object v1

    goto/16 :goto_0

    .line 355
    :cond_14
    invoke-direct {p0}, Lorg/jboss/netty/handler/codec/http/HttpMessageDecoder;->reset()Ljava/lang/Object;

    move-object v1, v10

    .line 357
    goto/16 :goto_0

    .line 170
    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_7
        :pswitch_5
        :pswitch_0
        :pswitch_1
        :pswitch_2
        :pswitch_6
        :pswitch_8
        :pswitch_9
        :pswitch_a
        :pswitch_b
        :pswitch_c
        :pswitch_d
    .end packed-switch

    .line 211
    :pswitch_data_1
    .packed-switch 0x1
        :pswitch_3
        :pswitch_4
    .end packed-switch
.end method

.method protected isContentAlwaysEmpty(Lorg/jboss/netty/handler/codec/http/HttpMessage;)Z
    .locals 4
    .parameter "msg"

    .prologue
    const/4 v2, 0x1

    .line 368
    instance-of v3, p1, Lorg/jboss/netty/handler/codec/http/HttpResponse;

    if-eqz v3, :cond_1

    move-object v1, p1

    .line 369
    check-cast v1, Lorg/jboss/netty/handler/codec/http/HttpResponse;

    .line 370
    .local v1, res:Lorg/jboss/netty/handler/codec/http/HttpResponse;
    invoke-interface {v1}, Lorg/jboss/netty/handler/codec/http/HttpResponse;->getStatus()Lorg/jboss/netty/handler/codec/http/HttpResponseStatus;

    move-result-object v3

    invoke-virtual {v3}, Lorg/jboss/netty/handler/codec/http/HttpResponseStatus;->getCode()I

    move-result v0

    .line 371
    .local v0, code:I
    const/16 v3, 0xc8

    if-ge v0, v3, :cond_0

    .line 379
    .end local v0           #code:I
    .end local v1           #res:Lorg/jboss/netty/handler/codec/http/HttpResponse;
    :goto_0
    :sswitch_0
    return v2

    .line 374
    .restart local v0       #code:I
    .restart local v1       #res:Lorg/jboss/netty/handler/codec/http/HttpResponse;
    :cond_0
    sparse-switch v0, :sswitch_data_0

    .line 379
    .end local v0           #code:I
    .end local v1           #res:Lorg/jboss/netty/handler/codec/http/HttpResponse;
    :cond_1
    const/4 v2, 0x0

    goto :goto_0

    .line 374
    :sswitch_data_0
    .sparse-switch
        0xcc -> :sswitch_0
        0xcd -> :sswitch_0
        0x130 -> :sswitch_0
    .end sparse-switch
.end method

.method protected abstract isDecodingRequest()Z
.end method
